﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ABC_SA_DM;
using System.Data.SqlClient;
using System.Collections;
using System.Diagnostics;

namespace ABC_SA_DAL
{
    public class Proveedor_DAL
    {
        public bool agregar(Proveedor proveedor) 
        {

            string sql = "EXEC InsertarProveedor '" + proveedor.UserName + "', '" + proveedor.contacto + "','" + proveedor.telefono + "','" + proveedor.fax + "','" + proveedor.ubicacion + "','" + proveedor.categoria + "';";
            return DBComma.nonSQLCommandEjecutar(sql);

        }
        
        public bool actualizar(Proveedor proveedor)
        {
            string sql = "EXEC InsertarProveedor '" + proveedor.UserName + "', '" + proveedor.contacto + "','" + proveedor.telefono + "','" + proveedor.fax + "','" + proveedor.ubicacion + "','" + proveedor.categoria + "', " + 1 + ";";
            return DBComma.nonSQLCommandEjecutar(sql);

        }

        public bool eliminar(Proveedor proveedor)
        {            
            string sql = "EXEC EliminarProveedor '" + proveedor.UserName + "';";
            return DBComma.nonSQLCommandEjecutar(sql);
        }

        public Proveedor consultarID(string usuario) {

            string sql = "EXEC ConsultarProveedores '" + usuario + "';";

            Conexion conecta = new Conexion();
            SqlConnection conn = conecta.Conectar();
            SqlCommand comando = new SqlCommand(sql, conn);
            SqlDataReader reader = comando.ExecuteReader();

            Proveedor proveedor = new Proveedor();

            try
            {
                while (reader.Read())
                {
                    proveedor.UserName = Convert.ToString(reader.GetValue(0));
                    proveedor.Contrasena = Convert.ToString(reader.GetValue(1));
                    proveedor.Rol = Convert.ToInt32(reader.GetValue(2));
                    proveedor.idProveedor = Convert.ToInt32(reader.GetValue(3));
                    proveedor.contacto = Convert.ToString(reader.GetValue(4));
                    proveedor.telefono = Convert.ToString(reader.GetValue(5));
                    proveedor.fax = Convert.ToString(reader.GetValue(6));
                    proveedor.ubicacion = Convert.ToString(reader.GetValue(7));
                }
            }
            catch (Exception e)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }

            return proveedor;

        }

        public List<Proveedor> consultar()
        {
            List<Proveedor> Lista = new List<Proveedor>();

            string sql = "EXEC ConsultarProveedores ;";
 
            Conexion conecta = new Conexion();
            SqlConnection conn = conecta.Conectar();
            SqlCommand comando = new SqlCommand(sql, conn);

            SqlDataReader reader = comando.ExecuteReader();

           //SqlDataReader reader = DBComma.sqlCommandEjecutar(sql);

            try
            {
                while (reader.Read())
                {

                    Proveedor proveedor = new Proveedor();

                    proveedor.UserName = Convert.ToString(reader.GetValue(0));
                    proveedor.Contrasena = Convert.ToString(reader.GetValue(1));
                    proveedor.Rol = Convert.ToInt32(reader.GetValue(2));
                    proveedor.idProveedor = Convert.ToInt32(reader.GetValue(3));
                    proveedor.contacto = Convert.ToString(reader.GetValue(4));
                    proveedor.telefono = Convert.ToString(reader.GetValue(5));
                    proveedor.fax = Convert.ToString(reader.GetValue(6));
                    proveedor.ubicacion = Convert.ToString(reader.GetValue(7));
                    proveedor.categoria = Convert.ToString(reader.GetValue(8));

                    Lista.Add(proveedor);
                }

            }
            catch (Exception e)
            {
               throw;
            }
            finally {
                conn.Close();
            }

            return Lista;
        }

        /******************************* ORLANDO CAMPOS 18/04/2014  ***********************************/
        public ArrayList consultaReporteProv(string nomUser, string fechDesde, string fechHasta) { 
        
            ArrayList resultados = new ArrayList();

            string sql = "EXEC spConsultaReporte '" + nomUser + "', '" + fechDesde + "', '" + fechHasta + "';";



            Conexion conecta = new Conexion();
            SqlConnection conn = conecta.Conectar();
            SqlCommand comando = new SqlCommand(sql, conn);
            SqlDataReader reader = comando.ExecuteReader();
            try
            {
                while (reader.Read())
                {
                    resultados.Add(reader.GetValue(0));
                    resultados.Add(Convert.ToDateTime(reader.GetValue(1)).ToString(@"dd-MM-yyyy"));
                    resultados.Add(reader.GetValue(2));
                    resultados.Add(reader.GetValue(3));
                    resultados.Add(reader.GetValue(4));
                    resultados.Add(reader.GetValue(5));
                }

            }
            catch (Exception e)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }
            
            return resultados;
            
        }

        public ArrayList consultaReporteCliente(string nomUser, string fechDesde, string fechHasta)
        {

            ArrayList resultados = new ArrayList();

            string sql = "EXEC spConsultaReporte '" + nomUser + "', '" + fechDesde + "', '" + fechHasta + "',"+2+";";

            Debug.WriteLine(sql);

            Conexion conecta = new Conexion();
            SqlConnection conn = conecta.Conectar();
            SqlCommand comando = new SqlCommand(sql, conn);
            SqlDataReader reader = comando.ExecuteReader();
            try
            {
                while (reader.Read())
                {
                    resultados.Add(reader.GetValue(0));
                    resultados.Add(Convert.ToDateTime(reader.GetValue(1)).ToString(@"dd-MM-yyyy"));
                    resultados.Add(reader.GetValue(2));
                    resultados.Add(reader.GetValue(3));
                }

            }
            catch (Exception e)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }

            return resultados;

        }
    }
}